//把传值的操作封装成一个函数，同类型放在一起统一管理

//引入常量
import {
    INCREMENT,
    DECREMENT
} from '../constant/countconst'
import store from '../store'


// 累加
export const incrementAction = (data)=>{
    //返回外面调用需要的对象
    return {
        type: INCREMENT,
        data
    }
}


//累减
export const decrementAction = (data)=>{
    //返回外面调用需要的对象
    return {
        type: DECREMENT,
        data
    }
}

//大部分处理异步操作，所以异步也放到这
//示例定时器,然后在store.js中配置中间件
export const waitIncrementAction = (data)=>{
 //因为异步操作会直接返回undefined,所以这里直接返回一个函数
  return ()=>{
    setTimeout(()=>{
        //redux-thunk会判断传递过来的action类型，是否为函数，若为函数类型，则自动调用这个function，并返回dispatch，这样在异步操作的任何时刻都可以dispatch了
        //redux middleware就是在actions和reducer之间做了一些处理，不让store.dispatch 后立即到达reducer去修改状态。
        store.dispatch({
            type:INCREMENT,
            data
        })
    },2000)
  }
}